The present invention relates generally to digital audio broadcasting (DAB) systems and other types of digital communication systems, and more particularly to techniques for generating error flags in such systems.
It is well known that reliable channel error flags can be derived from block codes such as Reed Solomon (RS) codes. These error flags can be used to indicate whether a channel-decoded block of data is in error, so that appropriate error mitigation/concealment algorithms can be used in the source decoder. For example, RS codes have been proposed for use in bandwidth-limited systems such as in-band on-channel (IBOC) digital audio broadcasting (DAB) systems being developed for the AM radio band. Although more advanced channel coding techniques such as concatenated xe2x80x9cTurboxe2x80x9d codes and trellis coded modulation (TCM) may provide better performance in such systems, the reliability of the channel error flags that can be generated using these conventional techniques is limited.
FIG. 1 shows a conventional DAB system 100 in which the above-noted block code approach is used to generate channel error flags. A transmitter portion of the system 100 includes a source encoder 102, a block coder 104 and a channel coder 106. A source signal is applied to an input of the source encoder 102 and is processed in the encoder to generate an output source-coded bit stream. The bit stream is applied to the block coder 104, which codes the bit stream using an RS code or other suitable block code. The resulting block-coded bit stream is then channel coded in the channel coder 106, which may be a convolutional coder. The block coder 104 and the channel coder 106 are also commonly referred to as an outer channel coder and an inner channel coder, respectively. The output of the inner channel coder 106 may be further processed prior to being applied to a communication channel 110 for delivery to a receiver portion of the system 100. Such further processing may include operations such as interleaving, modulation, upconversion, etc. which are omitted from the figure for clarity of illustration. The receiver portion of the system 100 includes an inner channel decoder 112, a block decoder 114 and a source decoder 116. Additional receiver operations, such as downconversion, demodulation, deinterleaving, etc. may be included but are again omitted for clarity of illustration. The received channel-coded bit stream is decoded in the inner channel decoder 112, which may be a Viterbi decoder, and the resulting block-coded bit stream is decoded in block decoder 114. The block decoder 114 generates a source-coded bit stream which is applied to an input of the source decoder 116. The block decoder 114 also generates a channel error flag which is supplied to the source decoder and used to trigger an algorithm for error mitigation or concealment. For example, if the error flag indicates that a particular block of bits contains an error, an error mitigation or concealment algorithm in the source decoder 116 may generate an interpolated output value using other blocks received without error, i.e., previous and subsequent blocks of bits.
As noted previously, an advantage of the block coding approach of FIG. 1 is that the channel error flags generated by block decoder 114 are very reliable. However, it would be preferable in bandwidth-limited systems and other applications to be able to provide reliable channel error flags without the need for block-based outer channel coding, i.e., to generate reliable channel error flags using only the inner channel code. For example, the block length associated with the outer channel block codes is fixed, while the source coder output frames are typically of variable length, leading to a mismatch between the block code generated error flags and the source coder output frames. Such a mismatch can prevent optimal performance of the error mitigation and concealment algorithms in the source decoder.
A need therefore exists for improved techniques for generating channel error flags from an inner channel coder, such that reliable channel error flags can be generated from channel codes such as concatenated codes and TCM, and the mismatch problem associated with the conventional block-based coding of FIG. 1 can be avoided.
The present invention provides methods and apparatus for generating channel error flags for use in error mitigation and/or concealment in source decoders. In accordance with one aspect of the invention, error flags are generated for use in source decoding of a source-coded bit stream transmitted through a channel of a communication system. The source-coded bit stream is channel coded using at least one channel code, and the channel code is decoded in a soft-decision channel decoder to generate a received version of the source-coded bit stream and one or more reliability measures associated with a designated portion of the received version of the source-coded bit stream. The reliability measures are processed to generate one or more error flags indicative of the presence of an error in the corresponding portion of the received version of the source-coded bit stream. The error flags may be used to trigger an error mitigation/concealment algorithm in the source decoder. Advantageously, the error flags can be matched to frames or subframes of the source-coded bit stream, such that the performance of the error mitigation/concealment algorithm is substantially improved relative to its performance when using error flags generated from a conventional outer block code.
In an illustrative embodiment of the invention, the reliability measures generated by the soft-decision channel decoder may include, for example, a posteriori probabilities for each bit or symbol in a designated portion of the received version of the source-coded bit stream. Such probabilities can be generated using a forward-backward decoding algorithm. As another example, the reliability measures generated by the soft-decision channel decoder in the illustrative embodiment may be log-likelihood ratios for each of the bits or symbols in the portion of the received version of the source-coded bit stream.
In accordance with another aspect of the invention, one of a number of different threshold-based processing techniques may be used to generate the error flags. For example, the reliability measures for each decoded bit or symbol in the designated portion of the received source-coded bit stream may be checked against a threshold, and if any one of the bits or symbols have reliability measures below the threshold, an error flag is generated for the portion. As another example, the reliability measures for one or more designated least reliable bits or symbols in the portion may be compared to the reliability measures for one or more designated most reliable bit or symbols in the portion, and an error flag generated for the portion based on the comparison. Different thresholds may be used for different portions of the received version of the source coded bit stream, or for different sub-portions of a given portion. The thresholds may be dynamically adapted in the source decoder to particular parameters or other characteristics of the source-coded bit stream.
The invention is particularly well-suited for use in conjunction with convolutional codes, Turbo codes and other concatenated codes, and trellis coded modulation (TCM), but could also be used with other types of channel codes.
The invention can be applied to any type of digital information, including, for example, audio, speech, video and image information, as well as various combinations thereof. In addition, the invention may be implemented in numerous digital communication applications, including AM and FM IBOC DAB systems, Internet and satellite broadcasting systems, etc.